Swinging Data Types { the Dielectic between Actions and Constructors {

نویسنده

  • Peter Padawitz
چکیده

final initial Abstract Initial structures are good for modelling constructor-based data types because they t the intuition about these types and admit resolution-and rewrite-oriented inductive theorem proving. The corresponding speciication and veriication methods do not comply so well with non-free or permutative types such as sets, bags and maps and are still less appropriate when innnite structures like streams or processes come into play. Non-free and innnite structure are better modelled as dynamic objects, which are identiied through reactions upon actions (methods, messages, state transitions) rather than through constructors they might be built of. Extensional, contextual, behavioural, observational or bisimilarity relations model object equality and the suitable domains are nal structures that are conservative with respect to visible subtypes. Consequently, a collection of data types and programs should be designed hierarchically as a \swinging" chain of speciications each of which extends its predecessor by either constructor types or action types. Constructor types introduce the visible domains and come with inductively deened total functions, structural equality and safety predicates with Horn clause axioms, while action types provide the hidden domains together with coinductively deened partial functions, behavioural equality and liveness predicates with liveness axioms that are dual to Horn clauses. A swinging speciication is interpreted as a sequence of initial and nal models. General proof rules capture this semantics and exploit the duality of induction and coinduction to its utmost extent. The deductive tractability is further enhanced by making both constructor and action types amenable to rewrite-oriented proof methods so that we can reason about swinging speciications in the same way we are used to reason about exclusively constructor-based types.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Structured Swinging Types

Swinging types (STs) provide an axiomatic specification formalism for designing and verifying software in terms of many-sorted logic and canonical models. STs are one-tiered insofar as static and dynamic, structural and behavioral aspects of a system are treated on the same syntactic and semantic level. Canonical models interpret relations as least or greatest fixpoints. All reasoning about a p...

متن کامل

Modular Swinging Types

Swinging types 18] provide an integrated framework for specifying software on the basis of many-sorted logic in terms of \static" functions and relations as well as \dynamic" transition systems. Swinging types combine equational, Horn and modal logic for the purpose of using evaluation and proof rules from all three logics for rapid prototyp-ing and veriication. A swinging speciication separate...

متن کامل

CoInduction in Coq

When providing a collection of constructors to define an inductive type, we actually also define a dual operation: a destructor. This destructor is always defined using the same structure of pattern-matching, so that we have a tendency to forget that we do extend the “pattern-matching” capability with a new destructor at each definition. Constructors and destructors play a dual role in the defi...

متن کامل

Wander types : A formalization of coinduction - recursion ∗

Wander types are a coinductive version of inductive-recursive definitions. They are defined by simultaneously specifying the constructors of the type and a function on the type itself. The types of the constructors can refer to the function component and the function itself is given by pattern matching on the constructors. Wander types are different from inductive-recursive types in two ways: t...

متن کامل

Wander Types A Formalization of Coinduction - Recursion ∗

Wander types are a coinductive version of inductive-recursive definitions. They are defined by simultaneously specifying the constructors of the type and a function on the type itself. The types of the constructors can refer to the function component and the function itself is given by pattern matching on the constructors. Wander types are different from inductive-recursive types in two ways: t...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1998